home *** CD-ROM | disk | FTP | other *** search
- Kermit-MPX
-
- Program: L. Tate, Simulation Associates Inc.
- Derived from CYBER-170 version 1.0,
- Jim Knutson, University of Texas.
- Language: Gould Fortran 77 4.2, with some assembler routines
- Version: 2.3
- Date: May 1986
- Documentation: L. Tate, Simulation Associates Inc.,
- Mike Niswonger, Computer Science and Applications
-
- Kermit-MPX Capabilities at a glance:
-
- Local operation Yes; MPX 3.2B or later
- Remote operation Yes
- Transfers text files Yes
- Transfers binary files No
- Wildcard send No
- ^X/^Y interruption No
- Filename collision avoidance No
- Can time out Yes
- 8th-bit prefixing No
- Repeat count prefixing No
- Alternate block checks No
- Terminal emulation No
- Communication settings No
- Transmit Break Yes
- IBM communication Yes
- Transaction logging No
- Session logging Yes
- Raw upload No
- Act as server Yes
- Talk to server Yes
- Advanced commands for servers No
- Local file management No
- Handle file attributes No
- Command/init files Yes
- Printer control No
-
- 14.1 Kermit-MPX Description
-
- Kermit-MPX runs on Gould's Concept and Series computers running MPX 2.X or MPX
- 3.X operating systems. MPX 3.2B and later versions allow true full duplex
- terminal operations so these installations may use the Kermit program in a
- local mode although the response is very poor.
-
- This Kermit requires the use of an eight line asynchronous (8LAS) interface
- (sorry ALIM and ADS users) on an IOP. This interface buffers the input,
- performing some rudimentary translations like lower to upper case and block
- reads and writes. Unfortunately, it's efficiency is very poor for single byte
- reads and writes, thus the connect mode's effective throughput is only about
- 300 baud. To make matters worse when the type-ahead buffer is full (40-128
- characters) then the buffer empties and a program interruption (break) is
- generated. Also a break can be generated by recognition by the 8LAS of a 'wake-
- up' character. Convenient for the terminal processor, but really bad for file
- transfer if the wake-up character is a '?' or any other printable character.
-
- This Kermit has a timeout that functions at random intervals. If the timeout
- doesn't work then sending a break should wake it up.
-
- The initialization file KERMIT.INI may be used to initialize Kermit. The file
- must be in the current directory when starting Kermit up. Any valid Kermit-
- MPX command may be included.
-
- 14.2 Kermit-MPX Commands
-
- Kermit-MPX uses the DECSYSTEM-20 keyword style command language. Each keyword
- may be abbreviated to its minimum length. "?" may be type to request a menu of
- the available options for the current field at any point in a command.
-
- Kermit-MPX prompts with 'Kermit-' with the machine type concatenated on to it.
- For example on a Concept 32/27 machine, the prompt will be 'Kermit-27>'.
-
- BYE
- Sends a message to the remote server to log out the remote Kermit and
- exits local Kermit to system level. Since Kermit-MPX cannot log itself
- off, it just exits the task.
-
- CONNECT
- Enter terminal emulation mode. Presents the illusion of being
- directly connected as a terminal to the remote system. When escape
- character is typed, interprets next character as follows:
-
- 0 (zero) transmits a null
- B transmits a BREAK
- C close a connection, return to
- local Kermit
- Q quit logging (if being done)
- R resume logging
- ? show available arguments
- escape character
- transmits the escape character
-
- Invalid arguments are beeped and reenters connect mode.
-
- EXIT
- Exit from local Kermit.
-
- FINISH
- Sends a message to the remote server to shut itself down, leaving the
- local Kermit at command level, and the remote at system level.
-
- GET remote-filename
- Tells a remote Kermit to send a file.
-
- HELP topic
- Typing HELP alone prints a brief summary of Kermit and its commands.
- You can also type
-
- HELP command
-
- for any Kermit command, e.g. "HELP SEND", to get more detailed
- information about a specific command. Type
-
- HELP ?
-
- to see a list of all the available help commands, or consult the
- Kermit Users Guide.
-
- QUIT
- Exit from local Kermit.
-
- RECEIVE
- Expects one or more files to arrive.
-
- SEND local-filename
- Sends a file to remote Kermit.
-
- SERVER
- Act as a server for another Kermit. Take all further commands from
- the other Kermit. After issuing this command, escape back to your
- local system and issue SEND, GET, BYE or other server-oriented command
- from there. If your local Kermit does not have a BYE command, it does
- not have the full ability to communicate with a Kermit server (in
- which case you can only use the send command).
-
- SET
- Establish system-dependent parameters. You can examine their values
- with the SHOW command. Numeric values may be decimal, octal
- (postfixed with an O or B), or hexadecimal (postfixed with an H). The
- following may be SET:
-
- DEBUG options
- Show packet traffic explicitly. Options are:
- ALL Set all debug options.
- LOG-FILE local-filename
- Log states and packets to the specified file.
- The default log-file is file L.KERMLOG
- OFF Don't display debugging information. (this is
- the default). If debugging was in effect, turn
- it off and close any log file.
- PACKETS Display each incoming and outgoing packet
- (lengthy)
- STATES Show Kermit state transitions and packet numbers
- (brief).
-
- LOG options
- Log all inputs from remote port during connection.
- Options are:
- LOG-FILE local-filename
- Log inputs to specified file. The default
- log-file is file L.SESSION
- OFF Turn off the session logging
- ON Turn on the session logging
-
- PORT terminal-address
- Sets the communication port; to which connect, send, receive and
- server interact with. Any MPX terminal address may be used.
- Examples: TY7EC0, U17CC4, or UT.
- Default is UT.
-
- ESCAPE number
- Control character used to escape from connect mode.
- Default is 29, (^])
-
- ECHO on/off
- Turns on or off the echo by Kermit during connect mode.
- Echo is normally off.
-
- DELAY number
- How many seconds to wait before sending the first packet. This
- gives you time to "escape" back and issue a RECEIVE command. Delay
- defaults to 5 seconds.
-
- INIT-RETRY number
- Set the maximum number of retries allowed for the initial
- connection before giving up.
- Default is 20.
-
- RETRY number
- Set the maximum number of retries allowed for sending a particular
- packet.
- Defaults to 5.
-
- SEND parameter
- Parameters for outgoing packets as follows:
-
- EOLCHR number
- The octal value of the ASCII character to be used as a line
- terminator for packets, if one is required by the other system.
- Carriage return (0DH) by default.
-
- PACKLEN number
- Maximum packet length to send, decimal number, between 20 and 94.
- 94 by default.
-
- PADCHR number
- Character to use for padding. Default is NUL.
-
- PADLEN number
- How much padding to send before a packet.
- Default is no padding.
-
- QUOTECHR number
- What printable character to use for quoting of control
- characters. The default is '#' (23H). There should be no reason
- to change this.
-
- SYNCCHR number
- The control character that marks the beginning of the packet.
- Normally SOH (Control-A, ASCII 1). There should be no reason to
- change this.
-
- TIMEOUT number
- How many seconds the other Kermit wants before being asked for
- retransmission. Default is 10 seconds.
-
- RECEIVE parameter
- Parameters to request or expect for incoming packets, as follows:
-
- EOLCHR number
- The octal value of the ASCII character to be used as a line
- terminator for packets, if one is required by the other system.
- Carriage return (0DH) by default.
-
- PACKLEN number
- Maximum packet length to send, decimal number, between 20 and 94.
- 94 by default.
-
- PADCHR number
- Character to use for padding. Default is NUL.
-
- PADLEN number
- How much padding to send before a packet.
- Default is no padding.
-
- QUOTECHR number
- What printable character to use for quoting of control
- characters. The default is '#' (23H). There should be no reason
- to change this.
-
- SYNCCHR number
- The control character that marks the beginning of the packet
- Normally SOH (Control-A, ASCII 1). There should be no reason to
- change this.
-
- TIMEOUT number
- How many seconds the other Kermit wants before being asked for
- retransmission. Default is 10 seconds.
-
- SHOW
- Display current SET parameters, version of Kermit, and other info.
-
- STATUS
- Give statistics about the most recent file transfer.
-
- TAKE local-filename
- Read and execute Kermit commands from a local file.
-
- X
- Exit from Kermit.
-
-
- 14.3 Software Installation
-
- MPX-3.2B and later operating systems support true full duplex TSM terminals.
- With these operating system versions set the LOCALON flag .TRUE. in the include
- file KVER.INS. This allows the local commands to be used; BYE, CONNECT, FINISH
- and GET. Otherwise, Kermit-MPX is good as a remote server (which is it's prime
- function anyway).
-
- The source is a series of files;
-
- KVER.INS version include file
- KDEF.INS Kermit definitions
- KPROT.COM protocol common
- KPACK.COM communication parameters of Kermits
- KFILE.COM I/O package common data
- KTIME.COM Timing of connect mode
- KDBUG.COM Debug output control
- KMSG.COM Prompt and version message
-
- GM2KERM.INS Consolidated include file
- (has all above files in it)
- GM2KERM.F77 main Kermit code
- GM2KERM.ASM assembler routines for I/O system
- GM2KERM.BAT batch deck to compile, assemble
- and catalog task image
-
- The small COM and INS files are found in the larger GM2KERM.INS file. Use a
- text editor to split out the smaller files for the Fortran compiler to access.
- When creating the task, edit the batch deck for appropriate directory names and
- file names.
-
- 14.4 Hardware Requirements
-
- The front end of a Gould can be quite trouble-some, requiring some expertise to
- overcome some of the 8LAS shortcomings.
-
- The wakeup character on many system is the '?'. This is a valid Kermit
- character, but every time it is sent, it breaks the terminal thus ending the
- packet. To avoid this we change the wakeup character to a non-valid Kermit
- character such as control-E (05H).
-
- The connect mode is rather slow, having an aggregate rate of 300 baud, if
- system load is low. However, we usually like to transfer at 9600 or 19.2k
- baud. In one installation, we set the baud rate to maximum. Since the remote
- system is sending characters back at the same high rate, it outpaces the local
- Kermit and we lose the buffer (remember the break) in connect mode. Note that
- this does not affect the server mode where transfers occur at full channel
- speed. Logging in and activating the server does not require much system
- interaction and dropped characters can be tolerated for the short duration of
- the connect mode required. This limitation of connect mode emphasizes the
- primary use of Kermit-MPX as a file server, not as an interactive connect
- terminal program.
-
- The other solution is to dynamically change the baud rate from 300 to 9600 and
- back. This requires a program to change the baud rate dynamically and a direct
- linkage between computers. The procedure is to log on to the remote's terminal,
- change the baud rate to desired rate, close your local connection, change the
- baud rate of connect port, then reopen connection.
-
- A port characteristic changing program was not built into Kermit because of
- it's system dependence. All that's needed is a program to translate the port
- characteristics to a 3 byte ACE code used 8LAS. This may be sent to the port
- using the M.WRITE macro, with the data format inhibit (DFI) bit set and the
- transmit ACE parameter bit set. See MPX reference manual, volume I for
- details. A good future enhancement.
-
-
- 14.5 Future Work
-
- Install a port setting capability to Kermit.
-
- Improve CONNECT speed. Suggested alternatives could be;
- Block reads with 1 sec timeouts and special character detect.
-
- Total interrupt driven. This requires assembler routine, and use of
- M.CALL to IOCS since M.WRITE/M.READ does not perform well in interrupt
- driven environment.
-
- Activate Kermit to get higher priority. This sounds cheap.
-
- Added server commands for file management, particularly;
- cd change directory
- copy copy file
- rename rename file
- delete delete file
- list list file
- dir directory listing,
-
- These commands are most needed since it's difficult to use volume manager
- at 9600 baud connected.
-
- Correct error reporting. Error packets are not displayed and for some
- reason, sent error packets are not displayed by other Kermits.
-
- 14.5 Kermit-MPX Revision List
-
- 2.3 Added to SERVER the ability to recognize the I packet. This packet
- is used by advanced Kermits (at least MS-Kermit 2.27 and up) to
- initialize the server. Changed the method by which nowait is
- established so that if ECHO was off before Kermit operation, then it
- will remain so afterwards. Good for network operation. Corrected
- the error reporting code such that the error messages are produced.
- However, they can be very cryptic. What is needed is a general
- method of handling text, like help and error messages, such that
- memory is not filled but ready access is available.
- L. Tate, SAI, May 1986.
-
- 2.2 Improved receive/get reliability by moving the terminal reporting
- before the ACK/NAK is sent. The problem seems to have been during
- the reporting time, the sending flooded the 8-line buffer and caused
- a break, losing data. Also corrected error in printl routine which
- wrote to stdout instead of the parameter fd.
- L. Tate, SAI, Mar. 1986.
-
- 2.1 Correct bug in SUDT. When use the SVC 1,X'27' which set full duplex
- on a terminal it previously used a trashed file control block. This
- had caused unpredictable results in a lot of the I/O including 2
- reads pending at once. Correcting this problem allowed removal of
- HIOALL routine. Files to be read are opened with OPENMODE='R' and
- files to be written are opened with OPENMODE='U'. Also added the
- TAKE command.
- L. Tate, SAI, Mar. 1986.
-
- 2.0 Added the CONNECT, GET, FINISH, BYE commands. This required
- significant changes to the io interface. The local on/off option
- was also part of this.
- L. Tate, SAI, Nov. 1985.
-
- 1.0 This Kermit was the direct implementation of the Cyber-170 version,
- University of Texas.
- L. Tate, SAI, Sept. 1985.
-
-